/**
 * @file btim.h
 * @brief 基本定时器驱动头文件
 * 
 * 本文件提供基本定时器(TIM6/TIM7)的驱动接口，支持定时中断功能。
 * 基本定时器主要用于产生精确的时间基准和定时中断。
 */

#ifndef __BTIM_H
#define __BTIM_H

#include "./SYSTEM/sys/sys.h"

/* ------------------------------------------ 基本定时器配置定义 ---------------------------------------- */

/* TIMX 中断定义 
 * 默认是针对TIM6/TIM7
 * 注意: 通过修改这4个宏定义,可以支持TIM1~TIM8任意一个定时器.
 */
 
#define USE_TIM6
//#define USE_TIM7

#ifdef USE_TIM6
#define BTIM_TIMX_INT                       TIM6
#define BTIM_TIMX_INT_IRQn                  TIM6_DAC_IRQn
#define BTIM_TIMX_INT_IRQHandler            TIM6_DAC_IRQHandler
#define BTIM_TIMX_INT_CLK_ENABLE()          do{ __HAL_RCC_TIM6_CLK_ENABLE(); }while(0)   /* TIM6 时钟使能 */
#endif

#ifdef USE_TIM7
#define BTIM_TIMX_INT                       TIM7
#define BTIM_TIMX_INT_IRQn                  TIM7_IRQn
#define BTIM_TIMX_INT_IRQHandler            TIM7_IRQHandler
#define BTIM_TIMX_INT_CLK_ENABLE()          do{ __HAL_RCC_TIM7_CLK_ENABLE(); }while(0)   /* TIM7 时钟使能 */
#endif

/* ---------------------------------------------- 函数声明 ----------------------------------------------- */

void btim_timx_int_init(uint16_t arr, uint16_t psc);    /* 基本定时器 定时中断初始化函数 */

#endif
